From f2d946d367d59afddf5aa95ac675ff502152f3e6 Mon Sep 17 00:00:00 2001 From: "kaf24@firebug.cl.cam.ac.uk" Date: Fri, 18 Nov 2005 17:41:03 +0100 Subject: [PATCH] Simplify arbitrary_virt_to_phys, and fix the x86/64 version to mask out the NX bit. Signed-off-by: Keir Fraser --- linux-2.6-xen-sparse/include/asm-xen/asm-i386/pgtable.h | 5 ++--- linux-2.6-xen-sparse/include/asm-xen/asm-x86_64/pgtable.h | 5 ++--- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/linux-2.6-xen-sparse/include/asm-xen/asm-i386/pgtable.h b/linux-2.6-xen-sparse/include/asm-xen/asm-i386/pgtable.h index 61b0d4e806..e8596b14ef 100644 --- a/linux-2.6-xen-sparse/include/asm-xen/asm-i386/pgtable.h +++ b/linux-2.6-xen-sparse/include/asm-xen/asm-i386/pgtable.h @@ -438,9 +438,8 @@ void make_pages_writable(void *va, unsigned int nr); #define arbitrary_virt_to_machine(__va) \ ({ \ - pte_t *__pte = virt_to_ptep(__va); \ - maddr_t __pa = (maddr_t)pte_mfn(*__pte) << PAGE_SHIFT; \ - __pa | ((unsigned long)(__va) & (PAGE_SIZE-1)); \ + maddr_t m = (maddr_t)pte_mfn(*virt_to_ptep(__va)) << PAGE_SHIFT;\ + m | ((unsigned long)(__va) & (PAGE_SIZE-1)); \ }) #endif /* !__ASSEMBLY__ */ diff --git a/linux-2.6-xen-sparse/include/asm-xen/asm-x86_64/pgtable.h b/linux-2.6-xen-sparse/include/asm-xen/asm-x86_64/pgtable.h index b9afd90123..d6bdf76e00 100644 --- a/linux-2.6-xen-sparse/include/asm-xen/asm-x86_64/pgtable.h +++ b/linux-2.6-xen-sparse/include/asm-xen/asm-x86_64/pgtable.h @@ -29,9 +29,8 @@ extern void xen_init_pt(void); #define arbitrary_virt_to_machine(__va) \ ({ \ - pte_t *__pte = virt_to_ptep(__va); \ - unsigned long __pa = (*(unsigned long *)__pte) & PAGE_MASK; \ - __pa | ((unsigned long)(__va) & (PAGE_SIZE-1)); \ + maddr_t m = (maddr_t)pte_mfn(*virt_to_ptep(__va)) << PAGE_SHIFT;\ + m | ((unsigned long)(__va) & (PAGE_SIZE-1)); \ }) #endif -- 2.30.2